#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>
#include<list>
#include<vector>
#include<algorithm>

using namespace std;

//int minOperations(vector<int>& nums, int target) {
//    int res = 0;
//    long long sum = 0;
//    for (auto it : nums)
//    {
//        sum += it;
//    }
//    list<int> l(nums.begin(), nums.end());
//    while (sum != target)
//    {
//        int num = 0;
//        for (auto it : l)
//        {
//            if (sum - it / 2 == target)
//            {
//                res++;
//                return res;
//            }
//            if (it > num && sum - it / 2 > target)
//            {
//                num = it;
//            }
//        }
//        if (num == 0) return -1;
//        auto pos = find(l.begin(), l.end(), num);
//        l.erase(pos);
//        l.push_back(num / 2);
//        sum -= num / 2;
//        res++;
//    }
//    return -1;
//}

//long long getMaxFunctionValue(vector<int>& v, long long k) {
//    int res = 0;
//    int n = v.size();
//    for (int i = 0; i < n; i++)
//    {
//        int count = i;
//        int rec = INT_MAX;
//        int pos = i;
//        vector<int> r;
//        do
//        {
//            r.push_back(v[pos]);
//            if (rec == pos) break;
//            rec = v[pos];
//            count += rec;
//            pos = rec;
//        } while (pos != i);
//        if (!(k / r.size() * count)) return count;
//        count = (k / r.size() * count);
//        for (int i = 0; i < k % r.size(); i++)
//        {
//            count += r[i];
//        }
//        if (count > res) res = count;
//    }
//    return res;
//
//}

int main()
{
    vector<int>v{ 0,0 };
    cout << getMaxFunctionValue(v, 7);
    return 0;
}